Ôn tập tổng hợp List - Tuple - Set
MỨC 1: CƠ BẢN (5 bài)
Bài 1. Danh sách bạn thân
Yêu cầu: Nhập vào tên của 5 người bạn và lưu vào danh sách. Sau đó in ra danh sách và số lượng người bạn.
Hướng dẫn:
- Sử dụng
input()
để nhập tên từng người. - Dùng
append()
để thêm vào list. - Dùng
print()
để hiển thị danh sách vàlen()
để đếm số phần tử.
Bài 2. Tên thú cưng bất biến
Yêu cầu: Tạo một tuple gồm tên ba con thú cưng yêu thích, ví dụ: mèo, chó, thỏ. Thử thay đổi tên thú thứ hai và quan sát kết quả.
Hướng dẫn:
- Tạo tuple bằng cú pháp
("mèo", "chó", "thỏ")
. - Thử gán lại phần tử thứ hai. Python sẽ báo lỗi vì tuple không thể thay đổi.
- In ra thông báo giải thích sự khác biệt giữa list và tuple.
Bài 3. Gộp nhóm bạn
Yêu cầu: Cho hai danh sách bạn bè của bạn và anh trai bạn. Một số tên có thể trùng. Hãy gộp lại thành một tập hợp chỉ chứa tên không trùng nhau.
Hướng dẫn:
- Tạo hai list có sẵn hoặc nhập từ bàn phím.
- Chuyển mỗi list sang
set
, rồi dùng phép hợp|
hoặcset1.union(set2)
.
Bài 4. Điểm kiểm tra bất ngờ
Yêu cầu: Cho danh sách điểm kiểm tra của bạn, hãy tìm ra điểm cao nhất và vị trí (chỉ số) của nó.
Hướng dẫn:
- Dùng
max()
để tìm điểm cao nhất. - Dùng
.index()
để tìm vị trí của điểm đó trong list.
Bài 5. Quà sinh nhật
Yêu cầu: Một người nhận được nhiều món quà sinh nhật (có thể trùng). Hãy tạo danh sách quà và in ra danh sách quà không trùng nhau.
Hướng dẫn:
- Tạo list quà tặng với vài món trùng.
- Dùng
set()
để loại bỏ quà trùng và in ra kết quả.
MỨC 2: TRUNG BÌNH (5 bài)
Bài 6. Đảo thứ tự xếp hàng
Yêu cầu: Cho danh sách xếp hàng của học sinh, hãy chuyển sang dạng tuple và đảo ngược thứ tự.
Hướng dẫn:
- Dùng
tuple()
để chuyển list sang tuple. - Dùng cú pháp
[::-1]
để đảo ngược tuple.
Bài 7. Tìm người giỏi nhất
Yêu cầu: Cho danh sách điểm của một lớp học. Hãy:
- Tìm các điểm không trùng nhau.
- Đếm số học sinh đạt điểm cao nhất.
Hướng dẫn:
- Dùng
set()
để lấy điểm duy nhất. - Dùng
max()
để tìm điểm cao nhất,count()
để đếm số lần xuất hiện.
Bài 8. Chuyển đổi đồ uống
Yêu cầu: Cho một tuple gồm các loại đồ uống yêu thích. Hãy chuyển thành list và thêm món mới vào cuối.
Hướng dẫn:
- Dùng
list()
để chuyển đổi tuple. - Dùng
.append()
để thêm phần tử.
Bài 9. Tên bắt đầu bằng chữ A hoặc B
Yêu cầu: Cho danh sách tên học sinh, in ra các tên bắt đầu bằng chữ A hoặc B.
Hướng dẫn:
- Duyệt từng tên trong list.
- Dùng
startswith("A")
hoặcstartswith("B")
để kiểm tra.
Bài 10. So sánh nhóm học sinh
Yêu cầu: Cho danh sách học sinh của hai nhóm. In ra các học sinh chỉ có ở nhóm A nhưng không có ở nhóm B.
Hướng dẫn:
- Dùng
set()
để chuyển hai danh sách. - Dùng phép trừ
setA - setB
.
MỨC 3: NÂNG CAO (5 bài)
Bài 11. Nhân vật hoạt hình
Yêu cầu: Cho danh sách các nhân vật hoạt hình dạng tuple (tên, loại)
.
Hãy in ra các loại nhân vật không trùng nhau.
Hướng dẫn:
- Tạo list gồm các tuple như
("Doremon", "mèo")
. - Duyệt qua từng tuple, thêm
loại
vàoset()
.
Bài 12. Lịch học
Yêu cầu: Cho một tuple chứa tên các môn học trong tuần. Đếm số lần học mỗi môn và in ra các môn chỉ học một lần.
Hướng dẫn:
- Duyệt tuple và dùng
dict
để đếm số lần xuất hiện. - In các môn có giá trị là 1.
Bài 13. Tính điểm trung bình
Yêu cầu: Cho danh sách học sinh với điểm như sau:
[("An", [8, 9, 10]), ("Bình", [6, 5, 7])]
Tính điểm trung bình từng học sinh và tìm người có điểm cao nhất.
Hướng dẫn:
- Duyệt qua từng tuple, dùng
sum()
vàlen()
để tính trung bình. - So sánh để tìm học sinh cao điểm nhất.
Bài 14. Học sinh giao lưu
Yêu cầu: Cho 3 danh sách học sinh của 3 lớp. Tìm các bạn có mặt ở cả 3 lớp.
Hướng dẫn:
- Dùng
set()
và toán tử&
để lấy phần giao nhau.
Bài 15. Món ăn không trùng
Yêu cầu: Có danh sách 10 món ăn. Người chơi chọn món ăn theo lượt, nếu ai chọn trùng sẽ bị cảnh báo.
Hướng dẫn:
- Dùng
set()
để kiểm tra món đã chọn. - Nếu món đã có trong set thì báo trùng, ngược lại thêm vào set.
Bạn có muốn mình viết file .py
hoặc .ipynb
kèm lời giải đầy đủ cho từng bài này không?
Hoặc cần thêm 5 bài thực tế nâng cao như "quản lý bạn bè", "lập kế hoạch học tập", "trò chơi đoán chữ" cũng được nha.